<?php
declare (strict_types = 1);

namespace app\admin\controller;

use think\Image;

use think\Request;

/**
 * 学习图像处理
 * 缩略图
 * 文字水印
 * 图片水印
 * Class File
 * @package app\admin\controller
 */
class File
{
    /**
     * 简单的就是ok
     * 制作缩略图
     * 目的是展示出来是缩略图还是重新生成一个缩略图放数据库里？
     */
    public function thumb(){
        # public有图片
        # 制作缩略图
        # 打开原图片

        $image = Image::open('./static/admin/img/study_.jpg');
        # 生成新的缩略图、可以覆盖原图
        $image->thumb(80,80)->save('./static/admin/img/study_thumb.jpg');
    }

    /**
     * 文字水印
     * text
     */
    public function fontWater(){
//        Call to undefined function think\imagettfbbox() 本地开发环境的问题

        $image = Image::open('./static/admin/img/study_.jpg');
        // 给原图左上角添加水印并保存water_image.png
        // getchwd() 函数返回当前工作目录 tp5 和tp6
//        /static/admin/font/font.ttf
        # 找对字体路径/static/admin/img/study_.jpg
        /**
         * 图像添加文字
         *
         * @param  string  $text   添加的文字
         * @param  string  $font   字体路径
         * @param  integer $size   字号
         * @param  string  $color  文字颜色
         * @param int      $locate 文字写入位置
         * @param  integer $offset 文字相对当前位置的偏移量
         * @param  integer $angle  文字倾斜角度
         *
         * @return $this
         * @throws ImageException
         */
        $image->text('2002A',getcwd().'/static/admin/font/font.ttf',20,'#ffffff',Image::WATER_NORTHWEST)->save('./static/admin/img/study_font.jpg');
    }

    /**
     * 图片水印
     * water
     */
    public function imageWater(){

        $image = Image::open('./static/admin/img/study_.jpg');
        /**
         * 添加水印
         *
         * @param  string $source 水印图片路径
         * @param int     $locate 水印位置
         * @param int     $alpha  透明度
         * @return $this
         */

        $image->water('./static/admin/img/verify.png',Image::WATER_CENTER)->save('./static/admin/img/water_study_.png');

    }

    /**
     * 图像反转
     */
    public function imageRotate(){
        $image = Image::open('./static/admin/img/study_.jpg');
        $image->rotate()->save('./static/admin/img/rotate_study_.jpg');
    }
}
